home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1984 July to December
/
Ahoy_Magazine_84-Jul-Dec_1984_Double_L_unofficial.d64
/
space patrol
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
9KB
|
219 lines
2 si=54272:for a=si to si+24:poke a,0:next a
3 print "[147]":poke 53280,0:poke 53281,0:hs=0:x4=0:y4=0
4 v=53248:x=60:y=76:x1=240:y1=30:i=0:b=0:f=56095:co=0:x2=60:y2=210:x3=30:y3=210
5 gosub 4000:gosub 4999
7 rem ========================
8 rem **** title screen ****
9 rem ========================
10 print "[147]":poke 53280,0:poke 53281,0
20 for a=1 to 100:x=int(rnd(1)*640)+1:c=int(rnd(1)*6)+2
30 poke 55456+x,c:poke 1184+x,46:next a
40 print "[156][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]"
50 print "[145] [154] "
60 print " (c) double[146] [146] software"
70 print " "
80 print "[156][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
90 printtab(4)"[158] [223] [223] [223] [223] [223]"
100 printtab(4)"[158] [158] [158] [158] [158] [146] [209]"
110 printtab(4)"[158] [158] [223] [158] [158] [158] [158] [146] [158] [158][223]"
120 printtab(4)"[158][223] [158] [158] [158] [146] [158] "
130 printtab(4)"[158] [158] [146] [158] [158] [158] [158] [223] [158] [223][146] [209]"
140 printtab(4)"[158][223] [158][146][223] [158][146] [223] [158][146][223] [146][158][223] [146][158][223] ":print
150 print tab(12)"[158] [223] [223] [223] [223] [223] [223]"
160 print tab(7)"[209] [158] [158] [158][146][223] [158] [158] [158] "
170 print tab(12)"[158] [158] [158] [158] [146] [158] [146] [158] [158] [158] [158] [158] "
180 print tab(12)"[158] [158] [146] [158] [146] [158] [146][169][158] [158] [158] "
190 print tab(4)"[150][209] [158] [146] [158] [158] [146] [158] [146] [158] [158] [223][158] [158] [158] [158] [223]"
200 print tab(12)"[158][223] [146] [158][223] [146][158][223] [146][158] [223] [146][158] [223] [146][158][223] [146][158][223] [146][158][223] "
210 print:print tab(8)"designed by....[149]bob lloret":print
220 print tab(12)"[158]press [150]f1 [158]to start"
230 poke 49522,1:poke 49523,5:poke 49524,34:poke 49525,20:poke 49526,24
235 poke 53265,peek(53265)or16
240 poke 49527,1:sys 49152:for d=1 to 90:next d
270 get a$:if a$<>"[133]" then 240
320 poke 53265,peek(53265)and239
324 rem =====================
325 rem **** playfield ****
326 rem =====================
330 print "[147]":poke 53280,0:poke 53281,0
340 l$=""
350 for a=1 to 75:x=int(rnd(1)*720)+1:c=int(rnd(1)*6)+2
360 poke 55296+x,c:poke 1024+x,46:next a
365 print left$(l$,19)"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
370 print left$(l$,22)" [146] [159] score "
371 poke v+21,53:sr=51:goto 375
372 poke v+21,37:sr=35:goto 375
373 poke v+21,5:sr=3
375 gosub 620
380 poke 49522,1:poke 49523,0:poke 49524,39:poke 49525,0:poke 49526,18
385 poke 53265,peek(53265)or16
390 y1=30:poke v+5,y1:poke 49527,1:gosub 540
394 rem =====================
395 rem **** main loop ****
396 rem =====================
400 sys 49152
401 a=int(rnd(0)*3)+601:on a-601 gosub 601,600
405 poke 2042,195:b=b+1:if b=4 then gosub 610
410 jv=peek(56320):fr=jvand16:jv=15-(jvand15)
420 if jv=2 then y=y+2:if y>=180 then y=180:gosub 620
430 if fr<>16thenx4=95:y4=y-2:pokev+12,x4:pokev+13,y4:pokev+21,sr+66:goto 900
440 if jv=1 then y=y-2:if y<=48 then y=48
445 if y1<=50 then y1=50
446 if y1>=174 then y1=174
450 poke v+1,y:poke v+5,y1:poke 2042,194
460 goto 400
485 rem ==========================
490 rem **** saucer explosion ****
495 rem ==========================
500 sys 49152:pokev+2,x1:pokev+3,y1:poke2042,193:ford=1to50:next
501 sys 49152:poke si,0:pokesi+1,0:pokesi+4,16
504 for a=15 to 10 step -.5
505 pokesi+24,a:pokesi+4,129:pokesi+1,3:poke si,5:pokesi+5,11
506 next a:sys 49152:hs=hs+100
510 for d=1 to 5:next:sys 49152:poke v+21,sr-2
515 print left$(l$,22)tab(28);"[159]";hs:sys 49152
520 poke si,0:pokesi+1,0:pokesi+4,16:goto 380
525 rem ======================
530 rem **** new saucer ****
535 rem ======================
540 poke si+24,2:poke si+5,64:pokesi+6,130:poke si+1,17:pokesi+4,129:pokesi,37
550 sys 49152:c=int(rnd(0)*3)+3:pokev+38,c:poke v+41,1:poke v+37,2
555 pokev+21,sr+2:poke 2042,195
560 sys 49152:y1=y1+3:if y1>=100+(c*2) then y1=100+(c*2):return
570 poke 2042,194
580 poke v+5,y1:goto 555
600 sys 49152:y1=y1+7:return
601 sys 49152:y1=y1-7:return
607 rem ========================
608 rem **** fuel monitor ****
609 rem ========================
610 sys 49152:f=f-1:pokef,0:b=0:iff=56070thenforz=56063tof-1:pokez,2:next
612 if f=56063 then h=y:goto 650
615 return
620 print left$(l$,20)" [158] fuel [156] "
630 f=56095:b=0:return
639 rem ==========================
640 rem ** space ship explosion **
641 rem ==========================
650 poke 2040,193:pokev+21,sr-2:ford=1 to 100:next:poke v+29,1:pokev+23,1
660 sys 49152:poke si,0:pokesi+1,0:pokesi+4,16:co=co+1
670 for a=15 to 8 step -.5
680 pokesi+24,a:pokesi+4,129:pokesi+1,3:poke si,5:pokesi+5,11
690 next a:sys 49152
700 for d=1 to 45:next:sys 49152:pokev+29,0:pokev+23,0
710 poke si,0:pokesi+1,0:pokesi+4,16:pokev+21,sr-3
711 if co=1 then 720
712 if co=2 then 800
713 if co=3 then 1000
717 rem ==========================
718 rem **** 2nd space ship ****
719 rem ==========================
720 for d=1 to 1000:nextd
730 y2=y2-1
740 pokev+9,y2:if y2<=76 then y2=76:y=y2:goto760
750 goto 730
760 poke 2040,192:poke v+39,5:pokev+21,33:poke v+1,y
770 y1=30:poke v+5,y1:goto 372
797 rem ==========================
798 rem **** 3rd space ship ****
799 rem ==========================
800 for d=1 to 1000:next d
810 x3=x3+1
820 poke v+10,x3:if x3=60 then for d=1 to 500:next d:goto 840
830 goto 810
840 y3=y3-1
850 poke v+11,y3:if y3=76 then y=y3:goto 870
860 goto 840
870 poke 2040,192:poke v+39,6:poke v+21,1:poke v+1,y
880 y1=30:poke v+5,y1:goto 373
900 sys 49152:for a=1 to 25:x4=x4+5:pokev+12,x4:next a:sys 49152:pokev+21,sr+2
910 if peek(v+30)and64=64 then 500
920 goto 440
1000 poke v+21,0:print"[147]":poke 53280,0:poke 53281,7
1010 for a=1 to 8
1020 print left$(l$,3)tab(12)" "
1025 for d=1 to 150:next d
1030 print left$(l$,3)tab(12)"[156]computer report"
1035 for d=1 to 150:next d:next a
1040 if hs<=5000 then 1060
1045 print left$(l$,7)tab(8)"[144]s c o r e ";hs
1050 msg$=" congratulations.....your mission was a success !!"
1055 goto 1200
1060 msg$=" microz has defeated you again !!"
1070 print left$(l$,7)tab(8)"[144]s c o r e ";hs
1200 for a=1 to len(msg$)
1210 print "[156]";left$(l$,10)left$(msg$,a)
1220 for d=1 to 150:next d:next a
1230 end
3980 rem =======================
3990 rem **** sprite data ****
3995 rem =======================
4000 for s1=12288 to 12350:read d1:pokes1,d1:next s1
4005 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4010 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
4015 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4020 poke v+39,2:poke 2040,192:poke v,x:poke v+1,y
4025 for s2=12352 to 12414:read d2:poke s2,d2:next
4030 data 128,0,0,64,0,24,104,0,57,52,48,114,26,56,100,14,184,200,2
4035 data 185,0,0,178,0,252,176,58,240,32,252,1,1,255,126,0,0,16,132
4040 data 15,35,4,64,70,6,32,140,34,56,24,182,92,51,182,110,101,172
4045 data 82,73,176,0,0,128,0
4050 poke 2041,193:poke v+40,2
4060 for s3=12416 to 12478:read ch:poke s3,ch:next
4070 data 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,3,255,192,15,255,240,63,255,252
4080 data 255,255,255,85,85,85,187,187,187,85,85,85,255,255,255
4090 data 63,255,252,15,255,240,3,255,192,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0
4100 poke 2042,194:pokev+28,4
4110 poke v+4,x1:poke v+5,y1
4120 for s4=12480 to 12542:read d4:poke s4,d4:next
4130 data 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,3,255,192,15,255,240,63,255,252
4140 data 255,255,255,85,85,85,238,238,238,85,85,85,255,255,255
4150 data 63,255,252,15,255,240,3,255,192,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0
4160 poke 2043,195:poke v+41,1:pokev+28,4:poke v+37,5:pokev+38,4
4170 for s5=12544 to 12606:read d5:pokes5,d5:next s5
4180 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4190 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
4200 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4210 poke2044,196:pokev+43,5:pokev+8,x2:pokev+9,y2
4220 for s6=12608 to 12670:read d6:pokes6,d6:next s6
4230 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4240 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
4250 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4260 poke2045,197:pokev+44,6:pokev+10,x3:pokev+11,y3
4270 for s7=12672 to 12734:read d7:poke s7,d7:next s7
4280 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4290 data 0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4300 data 0,0,0,0,0,0
4310 poke 2046,198:pokev+45,2
4320 return
4985 rem ==========================
4990 rem ** ml screen subroutine **
4995 rem ==========================
4999 for i=1 to 4:read a:next:read lo,hi:fori=lo to hi:readx:poke i,x:next
5000 data 11507,12573,12522,11001
5005 data 49152, 49528
5006 return
5010 data 174,114,193,224,3,144,3,76,117,192,188,114,193,140,121,193,174
5020 data 118,193,232,202,32,30,193,172,121,193,173,119,193,201,2,208,10
5030 data 169,32,72,173,33,208,72,76,50,192,177,90,72,177,92,72,204
5040 data 116,193,240,20,200,177,90,72,177,92,136,145,92,104,145,90,200
5050 data 204,116,193,208,238,240,18,136,177,90,72,177,92,200,145,92,104
5060 data 145,90,136,204,115,193,208,238,173,119,193,201,0,208,5,104,104
5070 data 76,111,192,104,145,92,104,145,90,236,117,193,208,160,96,172,116
5080 data 193,200,189,114,193,170,32,30,193,173,120,193,201,2,208,19,136
5090 data 169,32,153,122,193,173,33,208,153,162,193,204,115,193,208,239,240
5100 data 16,136,177,90,153,122,193,177,92,153,162,193,204,115,193,208,240
5110 data 236,117,193,240,37,202,32,30,193,172,116,193,200,136,177,90,72
5120 data 177,92,32,48,193,145,92,104,145,90,32,56,193,204,115,193,208
5130 data 234,236,117,193,208,221,240,46,202,206,118,193,232,32,30,193,172
5140 data 116,193,200,136,32,48,193,177,90,72,177,92,32,56,193,145,92
5150 data 104,145,90,204,115,193,208,234,236,118,193,208,221,238,118,193,232
5160 data 32,30,193,173,120,193,201,0,240,20,172,115,193,136,200,185,162
5170 data 193,145,92,185,122,193,145,90,204,116,193,208,240,96,189,89,193
5180 data 133,91,24,105,212,133,93,189,64,193,133,90,133,92,96,72,152
5190 data 24,105,40,168,104,96,72,152,56,233,40,168,104,96,0,40,80
5200 data 120,160,200,240,24,64,104,144,184,224,8,48,88,128,168,208,248
5210 data 32,72,112,152,192,4,4,4,4,4,4,4,5,5,5,5,5
5220 data 5,6,6,6,6,6,6,6,7,7,7,7,7,3,0,4,0
5230 data 4,1,1